import json
from django.shortcuts import render, HttpResponse
from django.views.decorators.csrf import csrf_exempt  # 免除csrf_token认证
from django.http import JsonResponse
from app01.utils.Bootstrap import BootStrapModelForm
from app01 import models
from django import forms
from app01.utils.pagination import Pagination


class TaskModelForm(BootStrapModelForm):
    class Meta:
        model = models.Task
        fields = "__all__"
        widgets = {
            "detail": forms.TextInput,
            # "detail": forms.Textarea
        }


def task_list(request):
    """任务列表"""
    # 去数据库获取所有的任务
    queryset = models.Task.objects.all().order_by('-id')
    page_object = Pagination(request, queryset)
    form = TaskModelForm()
    context = {
        'form': form,
        "page_queryset": page_object.page_queryset,
        "page_string": page_object.html()
    }
    return render(request, 'task_list.html', context)


@csrf_exempt
def task_ajax(request):
    print(request.POST)
    data_dict = {"status": True, "data": [11, 22, 33, 44]}
    json_string = json.dumps(data_dict)
    return HttpResponse(json_string)
    # return JsonResponse(data_dict)


@csrf_exempt
def task_add(request):
    form = TaskModelForm(data=request.POST)
    print(request.POST)
    # 1.用户发送过来的数据进行校验（ModelForm进行校验）
    if form.is_valid():
        form.save()
        data_dict = {"status": True}
        return HttpResponse(json.dumps(data_dict))
    data_dict = {"status": False, 'error': form.errors}
    # ensure_ascii = False,显示中文
    return HttpResponse(json.dumps(data_dict, ensure_ascii=False))
